package com.it.collection_traverse;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

/**
 * 目标： Collection集合的遍历方式一：使迭代器Iterator遍历
 * 方法：Iterator<E> iterator 返回集合中的迭代器对象，该迭代器对象默认指向当前集合的第一个元素
 */

public class Demo1 {
    public static void main(String[] args) {

        Collection<String> c = new ArrayList<>();
        c.add("赵敏");
        c.add("小昭");
        c.add("素素");
        c.add("灭绝");
        System.out.println(c); // [赵敏, 小昭, 素素, 灭绝]
//                                  it

        // 使用迭代器遍历集合
        // 1.从集合对象中获取迭代器对象
        Iterator<String> it = c.iterator();
//        System.out.println(it.next()); // 首次打印索引是 0
//        System.out.println(it.next());
//        System.out.println(it.next());
//        System.out.println(it.next());
//        System.out.println(it.next()); // 出现异常 越界了

        // 2.我们应该使用循环结合迭代器遍历集合
        // boolean hasNext() 询问当前位置是否有元素存在，存在返回true，不存在返回false
        while (it.hasNext()) {
            // E next() 获取当前位置的元素，并同时将迭代器对象指向下一个元素处
            String ele = it.next();
            System.out.println(ele);

 // 当数组里的元素是单数时取两次会出错
//            System.out.println(it.next());
//            System.out.println(it.next());
        }
    }
}
